package ooday04;
//匿名内部类
public class AnonInnerClassDemo {
    public static void main(String[] args) {
        //1)创建了Aoo的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o1，向上造型为Aoo类型
        //  ----new Aoo(){};是在创建Aoo的派生类对象
        //3)大括号中的为派生类的类体
        Aoo o1 = new Aoo(){};

        //1)创建了Aoo的一个派生类，但是没有名字---另一个派生类了
        //2)为该派生类创建了一个对象，名为o2，向上造型为Aoo类型
        //3)大括号中的为派生类的类体
        Aoo o2 = new Aoo(){};

        int num = 5;
        num = 6;
        //1)创建了Boo的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o3，向上造型为Boo类型
        //3)大括号中的为派生类的类体
        Boo o3 = new Boo(){
            void show(){ //重写Boo类的show()方法
                System.out.println("showshow");
                //num = 55; //编译错误，匿名内部类中不能修改外面局部变量的值
            }
        };
        o3.show(); //通过派生类对象o3来调用派生类类体中的show()方法
    }
}

abstract class Boo{
    abstract void show();
}

abstract class Aoo{
}

























